// pages/order/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs: [{
        id: 0,
        name: "全部",
        isActive: true
      },
      {
        id: 1,
        name: "待付款",
        isActive: false
      },
      {
        id: 2,
        name: "待发货",
        isActive: false
      },
      {
        id: 3,
        name: "退款/退货",
        isActive: false
      }
    ],
    orders: []
  },
  //tab栏的切换
  changeTab(e) {
    console.log(e)
    const {
      index
    } = e.detail
    //深拷贝tabs
    let tabs = JSON.parse(JSON.stringify(this.data.tabs))
    //遍历数组
    tabs.forEach((item, i) => i === index ? item.isActive = true : item.isActive = false)
    this.setData({
      tabs
    })
  },

  /**
   * 生命周期函数--监听页面显示
   * 1 页面被打开的时候 onShow 
      1.1 onShow 不同于onLoad 无法在形参上接收 options参数 
      1.2 判断缓存中有没有token 
        1.2.1 没有 直接跳转到授权页面
        1.2.2 有 直接往下进行 
   */
  onShow: function () {
    //获取缓存中的数据
    const orders = wx.getStorageSync('ordersList');
    this.setData({
      orders
    })
    //获取地址栏中参数，不能直接拿
    //判断是否有token
    const token = wx.getStorageSync('token');
    if (!token) {
      //没有token，跳转授权页面
      wx.navigateTo({
        url: '/pages/auth/index'
      });
      return;
    }

    //onShow中获取url中参数的方法
    //1.获取当前小程序中的页面栈--数组，长度最大是10个页面
    let pages = getCurrentPages()
    //2.数组中索引最大的页面就是当前的页面
    let currentPage = pages[pages.length - 1]
    console.log(currentPage)
    //获取url上的参数
    const type = currentPage.options.type
    //修改tabs 的选中
    let {
      tabs
    } = this.data
    if (!type) {
      tabs[0].isActive = true
    } else {
      tabs.forEach((v, i) => i === parseInt(type) ? v.isActive = true : v.isActive = false)
    }
    //设回data
    this.setData({
      tabs
    })
  },
  //下拉刷新触发事件
  onPullDownRefresh() {
    wx.showLoading({
      title: '加载中',
      duration: 1000,
      mask: true
    });
    //获取缓存中的数据
    const orders = wx.getStorageSync('ordersList');
    //清空商品数据
    this.setData({
      orders: []
    })
    setTimeout(() => {
      //再次发生请求
      this.setData({
        orders
      })
      wx.stopPullDownRefresh()
      wx.hideLoading();
    }, 1000)
  },
})